1. Field of the Invention
This invention relates generally to software support in distributed systems and, more particularly, to software maintenance at remote nodes using facilities of a central site.
2. Description of the Related Art
In a distributed data processing system comprising a network of remote locations connected to a central mainframe computer processor, each remote location can include a computer processor to which many customers are connected. A customer can comprise, for example, a workstation user, a microcomputer terminal, or an information system support facility. Certain overhead and management functions might be performed by the mainframe computer at the central site, but much of the network data processing is performed at the remote locations by the remote location processors, particularly data processing tasks requested by the customers.
Each remote location is commonly referred to as a node of the network. Each remote location processor communicates with its connected customers through a remote location operating system and may include a variety of application programs that are invoked, or run, by the customers at the remote location. Typically, the operating systems and application programs comprise widely available, industry-standard software program products produced by a variety of vendors. A customer can generally tailor a program product for execution at a particular remote location to obtain proper interfacing with the network and with the remote location system and to invoke specially desired features of the product.
The computer programs comprising the remote location operating system and application programs will be changed from time to time as improvements are added to the programs and as programming errors, typically referred to as "bugs", are found and fixed. There generally are two different methods of propagating program changes throughout the distributed system. One method is to completely substitute an older program with a new version of the same program. In that case, the older program that is installed at a remote location is deleted from the remote program storage and is substituted with the completely new version of the program. The other method is to replace only the lines of programming code that have actually changed between the old version and the new version. Often, the program being changed will include a relatively extensive amount of code intended as update tools to help the customer incorporate the replacement changes and thereafter run the new, updated version. Whether the substitution method or replacement method is used, the updating of the program is referred to as the software "service" and is a very important aspect of software maintenance.
In distributed systems, the generally preferred method of program updating is the replacement method, because typically the programs being serviced comprise many lines of code and the changes between consecutive versions are modest in comparison. The update changes to a program are commonly referred to as a "fix". Performing the service involves obtaining the fix and incorporating or installing the changes into the program storage at the remote location. A program can be in use for many years and therefore its software maintenance history from the original program version through fixes can comprise a long sequence of service.
It is important for a system programmer charged with software maintenance to know that, after the update, the new version software product is a good product. That is, the installed fix should be free from error, should permit the changed program to operate without problems, and should not create new operating problems. On occasion, however, an error in a fix can be discovered. The error therefore requires a subsequent fix to the original fix. As noted above, a product in service for many years can accumulate a relatively large number of installed fixes. To ensure that the latest fix is valid, it is necessary to perform service research, which is the process of determining all of the changes necessary from the original program version to result in the fully updated program. For example, one fix might require other, preceding fixes to the original program version for proper operation. These preceding fixes are typically referred to as requisite fixes. Such information might be manually obtained in an individual effort by the system programmer, which requires cooperation between the programmer and the software vendor. The process of obtaining the sequence of fixes that have been created for a software product is known as service research.
After a particular set of fixes have been identified, the fixes must be gathered together for installation. Different program products might have different methodologies for obtaining program fixes. The fixes might be obtained, for example, as copies of code changes recorded onto magnetic tape or disk. Alternatively, the changes might be obtained over telecommunication lines such as through modem connections. Changes might also be received directly over the network to which the remote site is connected. Different program products also might have different ways of applying the fixes at the remote location, testing the changed program, and installing the changed program onto the system at the remote location.
Thus, each program in an operating system can have a different methodology for applying updates and updating a program product across different operating systems can be different. There presently is no common method of updating for all products on a given operating system or across all operating systems. From the discussion above, it should be apparent that there is a need for commonality in applying fixes to remote locations across operating systems and program products. The present invention satisfies this need.